package com.company;
/**
 * 异常方法
 * 下面的列表是 Throwable 类的主要方法:
 *
 * 序号	方法及说明
 * 1	public String getMessage()
 * 返回关于发生的异常的详细信息。这个消息在Throwable 类的构造函数中初始化了。
 * 2	public Throwable getCause()
 * 返回一个Throwable 对象代表异常原因。
 * 3	public String toString()
 * 使用getMessage()的结果返回类的串级名字。
 * 4	public void printStackTrace()
 * 打印toString()结果和栈层次到System.err，即错误输出流。
 * 5	public StackTraceElement [] getStackTrace()
 * 返回一个包含堆栈层次的数组。下标为0的元素代表栈顶，最后一个元素代表方法调用堆栈的栈底。
 * 6	public Throwable fillInStackTrace()
 * 用当前的调用栈层次填充Throwable 对象栈层次，添加到栈层次任何先前信息中。
 */


/**
 * finally关键字
 * finally 关键字用来创建在 try 代码块后面执行的代码块。
 *
 * 无论是否发生异常，finally 代码块中的代码总会被执行。
 *
 * 在 finally 代码块中，可以运行清理类型等收尾善后性质的语句。
 *
 * finally 代码块出现在 catch 代码块最后，语法如下：
 */
public class ExcepTest {
    public static void main(String[] args){
        int a[] = new int[2];
        try{

            System.out.println("Access element three :" + a[3]);
        }catch(ArrayIndexOutOfBoundsException e){
            System.out.println("Exception thrown  :" + e);
        }finally{
            a[0] = 6;
            System.out.println("First element value: " +a[0]);
            System.out.println("The finally statement is executed");
        }
        System.out.println("Out of the block");
    }
}
